"use strict";
angular.module('app.jurisdiction').controller('JurisdictionCtrl', function($scope,$rootScope,$http,$cookieStore,$timeout, Restangular) {
	$scope.role_id = "";

    
	//获取所有的角色
	$http.get(baseurls+"/list_nopage/role").then(function(res){
		// console.log(res.data);
		if(res.data.ret == 1){
			$scope.roles = res.data.info;
		}
	})
	//获取所有的动作
	$http.get("api/actions.json").then(function(res){
		// console.log(res.data)
		$scope.actions = res.data;
	})
	//获取所有项目
	$scope.pro_ids = [];
	$http.get(baseurls+"/list_nopage/project").then(function(res){
		// console.log(res.data);
		if(res.data.ret == 1){
			$scope.projects = res.data.info;
			for(var name in $scope.projects){
				$scope.pro_ids.push($scope.projects[name].id);//项目id
			}
			console.log($scope.pro_ids)
		}
	})
	//单选全选
	// $("#all").click(function(){
	// 	var all = $(this).prop("checked");
	// 	if(all){
	// 		$(".one").prop("checked",true)
	// 	}else{
	// 		$(".one").prop("checked",false)
	// 	}
	// })
	CheckAll('#parent','.son');//???
	function CheckAll( parent , son ){
		$(''+ parent +' input').click(function(){
			 $(this).prop('checked') == true ? ack(true) : ack(false);
		})
		$(''+ son +' input').click(function(){
			// console.log('a')
			 var allSon = $(''+ son +' input').length;
			 var ck = 0;
			 for(var i=0; i < allSon; i++ ){
				 if($(''+ son +' input').eq(i).prop('checked') == true){
					 ck++;
					//  console.log(ck)
				 }
			 }
			 ck == allSon ? small(true) : small(false);
		})
		function small(flag){
			$(''+ parent +' input').prop('checked',flag)
		}
		function ack(flag){
			for(var i=0; i< $(''+ son +' input').length; i++){
				$(''+ son +' input').prop('checked',flag);
			}
		}
	}
	//判断角色菜单权限
	$scope.sel = function(){
	    var id =  $scope.role_id;
	    
	    clear_select();

		getaction(id);

	}
	var clear_select = function(){
        $(".one").prop("checked", false);
        $("#all").prop("checked", "");
	}

	var getaction = function(roleid){
		// console.log(roleid);
		$http.get(baseurls+"/detail/role?id=="+roleid).then(function(res){
			if(res.data.ret ==1){
				var power = JSON.parse(res.data.info.power);
				// console.log(power);
				if(power){
					for(var name in power){
						// console.log(power[name])
						var arr = [1,2,4,8,16,32,64,128,256,512];
						for(var a=0;a<arr.length;a++){
							var key = power[name].power & arr[a];
							if(key != 0){
								$("#" + key + "-" + power[name].projectid).prop("checked",true);
							}
						}

					}
				}
				
			}
		})
	}

	//编辑动作权限
	$scope.addactMenu = function() {
		var id = $("#sel option:selected").val();
		if(id == ""){//未选中正确角色时
			$("#dialog").modal("show",true);
		}else{
			// console.log($scope.pro_ids)//依据项目id创建数组
			var actarr = [];
			
			for(var t=0;t<$scope.pro_ids.length;t++){
				actarr[t] = { "projectid": $scope.pro_ids[t], "power": 0 };
			}
			// console.log(actarr)
			var actype;
			var jack = $(".one");//单选框
			for(var i = 0; i < jack.length; i++) {
				if(jack[i].checked == true) {
					actype = jack[i].id;
				} else {
					actype = "";
				}
				if (actype != "") {
					
					var arr=actype.split("-"); //eg: ["32", "1"]
					for(var j=0;j<actarr.length;j++){
						if(actarr[j].projectid == parseInt(arr[1])){
							actarr[j].power += parseInt(arr[0]);
						}
					}

				}
				
			}
			console.log(actarr);
			actarr = JSON.stringify(actarr);

			//更新角色的权限
			$http.put(baseurls+"/data/role?id=="+$scope.role_id, {power: actarr}).then(function(res){
			    if(res.data.ret == 1){
			    	new Notify('success','角色权限更改成功');
			    }else{
			    	new Notify('fail','角色权限更改失败');
			    }
			})
		}

	}
});